1. Field of the Invention
The present invention relates generally to a puncturing device and method for a turbo encoder in a mobile communication system, and in particular, to a puncturing device and method for minimizing puncturing of tail symbols.
2. Description of the Related Art
In mobile communication systems such as satellite, ISDN (Integrated Services Digital Network), digital cellular, W-CDMA (Wideband Code Division Multiple Access) and IMT-2000 communication systems, a channel codec punctures encoded data in order to match symbol rates during transmission of data having different data rates. In particular, the IMT-2000 system can use either a convolutional encoder or a turbo encoder. However, in either case, the rates of the output symbols should be identical to one another because an interleaver typically follows the encoder and has the same memory capacity for storing the symbols.
Generally, the number of output nodes of the convolutional encoder is equal to a code rate. However, in the turbo specific encoder, the number of output nodes is not equal to the code rate and therefore puncturing should be performed to match the code rate. At this point, the tail symbols output from the turbo encoder are also punctured according to the same puncturing pattern as that used for the parity part of the code symbol.
In the convolutional encoder and the turbo encoder, the number of tail symbols required for termination varies depending on the code rate. For example, a constraint; length K=9 convolutional encoder requires (8xc3x97(1/code rate)) tail symbols, Column A of Table 1, and a K=4 turbo encoder requires 3xc3x976=18 tail symbols regardless of the code rate (when using two component encoders and separate termination), Column B of Table 1. Therefore, turbo encoder has extra symbols (or reserved symbols, Column C of Table 1) except for the case of the code rate 1/2, as compared with the convolutional encoder. The extra symbols correspond to the difference between Columns A and B and are equal to 0 if negative. When using the turbo encoder, for symbol rate matching, invalid information.(xe2x80x980xe2x80x99 or xe2x80x981xe2x80x99 which is known to the receiving side) is added to the reserved symbols to create a frame. Herein, the invalid information added for symbol rate matching will be referred to as invalid symbols. Column C of Table 1 below shows the invalid number of symbols.
FIG. 1 shows a conceptional block diagram of a common turbo encoder. A description will be made of an operation of puncturing a turbo code, with reference to FIG. 1.
The turbo encoder comprises a first encoder 110, an interleaver 130 and a second encoder 120, and receives an L-bit information frame X. The first encoder 110 encodes the L-bit one information frame X, which is source data, into a first systematic symbol L, a first L-bit parity symbol Y0, a second L-bit parity symbol Y1, and m bit tail symbols for each of the parity signals Y0, Y1 and m tail symbols for first systematic symbol X. The m tail symbols for first systematic symbol L are a tail bit itself, generated by first encoder terminating memory of the encoder. The m tail symbols are generated when the first encoder receives the last three bits of the tail bit, thereby to reset a shift register in the first encoder 110. Further, the information frame X is output, as it is, without coding, and only the m tail symbols for the information frame X are created by the first encoder 110. The interleaver 130 interleaves the input one frame data X and outputs interleaved source data Xxe2x80x2. The second encoder 120 encodes the interleaved source data Xxe2x80x2 into a third parity symbol Yxe2x80x20, a fourth parity symbol Yxe2x80x21, and m tail symbols for each of the parity symbol Yxe2x80x20, Yxe2x80x21 and m tail symbols for second systematic symbol Lxe2x80x2. The m tail symbols for second systematic symbol Lxe2x80x2 are a tail bit itself, generated by second encoder terminating memory of the encoder. The second encoder can output second systematic symbol Xxe2x80x2, but all of the second systematic symbol Xxe2x80x2 is punctured at all of the code rate. Therefore, it is equal to do not output the second systematic symbol Xxe2x80x2. In this specification, we describe the turbo encoder outputs several coded symbol frames X, Y0, Y1, Yxe2x80x20 and Yxe2x80x21 in response to an input frame, and excluding the interleaved information frame Xxe2x80x2, and m tail symbols for each of the signals X, Y0, Y1, Yxe2x80x20, Yxe2x80x21 and Xxe2x80x2. Commonly, there are provided 3 tail symbols for each of the coded symbol frame. However, it is also possible to output the interleaved frame Xxe2x80x2, as it is, and then delete it in the following stage by puncturing.
Such a turbo encoder internally creates the five coded symbol frames and six sets of tail symbols using one input information frame. The five coded symbol frames and six sets of tail symbols should undergo the same puncturing pattern during creation of a transmission frame, for transmission at a previously defined code rate.
For code rate matching, the proposed IMT-2000 system performs select (inversely say puncturing) as shown in Table 2.
In Table 2, xe2x80x98mxe2x80x99 denotes a given time point, and xe2x80x98ixe2x80x99 in m+i (i=1,2,3,4,5, . . . ) denotes the order of selection at the time m. For example, for a code rate R=1/2, at the time m, the systematic frame X is first selected, the encoded information frame Y0 is punctured all, where xe2x80x9cNonexe2x80x9d means not selected, and one of the encoded symbols Y1 and Yxe2x80x21 is selected and the non selected one (Y1 OR Yxe2x80x21 ) is punctured. Further, after the tail symbols for the systematic frame X are selected, one of the tail symbols for the encoded parity symbol frames Y1 and Yxe2x80x21 are selected and the non selected one (Y1 OR Yxe2x80x21) is punctured and thereafter, the tail symbols for the interleaved frame Xxe2x80x2 are selected. After puncturing in this manner, multiplexing is performed to transmit the frame.
FIGS. 2A to 2C show puncturing methods according to Table 2, for R=1/2, 1/3 and 1/4, respectively. In the drawings, the hatched boxes denote the tail symbols; and the xe2x80x98Xxe2x80x99-marked boxes denote the punctured bits. The boxes corresponding to Xxe2x80x2(t) are surrounded by a dashed line as they are not output. This can be expressed with the factors output from the turbo encoder as follows, wherein the underlined factors denote the punctured factors (i.e. not selected).
1) For the case of R =1/2:
X(0),Y0(0),Y1(0),Yxe2x80x20(0),Yxe2x80x21(0), X(1),Y0(1),Y1(1)Yxe2x80x20(1),Yxe2x80x21(1), . . . , X(Lxe2x88x921),Y0(Lxe2x88x921),Y1(Lxe2x88x921)Yxe2x80x20(Lxe2x88x921)Yxe2x80x21(Lxe2x88x921),
T1(0),TP11(0),TP12(0),T2(0),TP21(0),TP22(0),
T1(1),TP11(1),TP12(1),T2(1),TP21(1),T22(1) . . .
T1(mxe2x88x921),TP11(mxe2x88x921),TP12(mxe2x88x921),T2(mxe2x88x921),TP21(mxe2x88x921),T22(mxe2x88x921)
where T1 is tail symbol for systematic symbol, TP11 is tail parity for parity Y0, TP12 IS tail parity for parity Y1, TP21 is tail parity for Yxe2x80x20, TP22 is tail parity for Yxe2x80x21.
2) For the case of R=1/3:
X(0),Y0(0),Y1(0),Yxe2x80x20(0),Yxe2x80x21(0), X(1),Y0(1),Y1(1),Yxe2x80x20(1),Yxe2x80x21(1), . . . , X(Lxe2x88x921),Y0(Lxe2x88x921),Y1(Lxe2x88x921),Yxe2x80x20(Lxe2x88x921),Yxe2x80x21 (Lxe2x88x921),
T1(0),TP11(0),TP12(0),T2(0),TP21(0),T22(0), . . .
T1(mxe2x88x921),TP11(mxe2x88x921),TP12(mxe2x88x921),T2(mxe2x88x921),TP21(mxe2x88x921),T22(mxe2x88x921),
RVB(0),RVB(1) . . . ,RVB(h).
where RVB() means reserved bits.
3) For the case of R=1/4:
X(0),Y0(0),Y1(0)Yxe2x80x20(0),Yxe2x80x21(0), X(1),Y0(1),Y1(1 ),Yxe2x80x20(1),Yxe2x80x21(1), . . . , X(Lxe2x88x922),Y0(Lxe2x88x922),Y1(Lxe2x88x922),Yxe2x80x20(Lxe2x88x922),Yxe2x80x21(Lxe2x88x922),
X(Lxe2x88x921),Y0(Lxe2x88x921),Y1(Lxe2x88x921),Yxe2x80x20(Lxe2x88x921),Yxe2x80x21(Lxe2x88x921),
T1(0),TP11(0),TP12(0),T2(0),TP21(0),T22(0),
T1(1),TP11(1),TP12(1),T2(1),TP21(1),T22(1) . . .
T1(mxe2x88x921),TP11(mxe2x88x921),TP12(mxe2x88x921),T2(mxe2x88x921),TP21(mxe2x88x921),T22(mxe2x88x921),
RVB(0),RVB(1) . . . ,RVB(h).
Table 1 has shown the number of the reserved symbols at every code rate, and Table 2 has shown the puncturing methods. As shown in Tables 1 and 2, even when the tail symbols of the turbo code are punctured, the reserved symbols are generated except for the case of R=1/2. When the tail symbols are punctured, 6 invalid symbols are inserted for R=1/3 as shown in FIG. 2B, and the 3 tail symbols are punctured, 14 invalid symbols are inserted for R=1/4 as shown in FIG. 2C and Table 1.
As described above, even though there remain the reserved symbols, a method for puncturing the encoded information frame is equally applied to the tail symbols in order to match a rate of the symbols added to increase a decoding accuracy, thereby decreasing the decoding capability of the receiver.
It is, therefore, an object of the present invention to provide a puncturing device and method for a turbo encoder, which minimizes or avoids puncturing of tail symbols using reserved symbols generated while performing turbo encoding.
It another object of the present invention to provide a selection (puncturing) device and method for a turbo encoder, which selection (puncturing) rule is different at the coded symbol frame period and tail symbol selection period for minimize puncturing of tail symbol.
To achieve the above object, there is provided a puncturing device for a turbo encoder in a mobile communication system having a turbo encoder which turbo encodes input source data into a plurality of coded symbol frames and tail symbols at a given code rate. The puncturing device comprises a frame generator for generating a transmission frame by performing puncturing and adding invalid symbols; and a controller for performing puncturing on the symbol frames according to the code rate, puncturing the tail symbols only when the number of selected symbol frames and tail symbols exceeds a bit number according to a symbol rate.